auto.waitFor()
setScreenMetrics(1080, 1920);

//程序启动入口
Unlock()
main_feishu_qiantao(); 
closeCurrentPackage();
// Camera() //锁屏
engines.myEngine().forceStop();
exit();

//解锁
function Unlock(){
    // if (device.isScreenOn()) {
    //     return
    // }
    
    //点亮屏幕
    device.wakeUp();
    swipe(device.width/2, device.height*1/7, device.width/2, device.height*7/8, 1000);
    sleep(1000);
    //滑动屏幕解锁
    swipe(device.width/2, device.height*7/8, device.width/2, device.height*1/7, 1000);
    // click(821, 883);sleep(500);
    // click(544, 614);sleep(500);
    // click(538, 878);sleep(500);
    // click(810, 1131);sleep(500);
    // click(558, 1414);sleep(500);
    // click(542, 1150);sleep(500);
    back()
    back()
    back()
    home()
    sleep(1000);
}

//飞书打卡
function main_feishu_qiantao(){
    launchApp("飞书");
    var kuakle_name = getPackageName("飞书")
    log("飞书包名："+kuakle_name)

    text("消息").waitFor();

    //点击工作台
    if(id("app_center_tab").exists() && id("app_center_tab").findOne().click()){
        log("点击-工作台，成功");
    }else{
        log("点击-工作台，失败");
    }
    
    //customSleep(2)
    //text("工作台").waitFor();
   
    // 请求截图
    if(!requestScreenCapture()){
        toastLog("请求截图失败");
        exit();
    }

    //找到打卡并且点击
    var x=0,y=0
    try {
    id("recycler").findOne().children().forEach(child=>{
        var target = child.findOne(id("name"))
        //log(target.text())
        if(target.text() && target.text()=="打卡"){
            if(x==0 && y==0){
                x = target.bounds().centerX()
                y = target.bounds().centerY()
                throw Error()
            }
            log(target.bounds().centerX(), target.bounds().centerY());
        }
    }) 
    }catch(error){
        //log(error)
    }

    if(x>0 && y>0){
        log("找到打卡成功",x,y)
        click(x,y)
    }else{
        log("找到打卡失败");
    }
    
    //点击打卡&确认
    // var daka_img="./打卡.png";
    // find_pic_click(daka_img)
    // if(click(666,343)){
    //     log("工作台-点击成功")
    // }else{
    //     log("工作台-点击失败")
    // }

    customSleep(5)

    var waqin_daka_img="./外勤打卡3.png";
    find_pic_click(waqin_daka_img)

    var waqin_daka_img="./外勤打卡3.png";
    find_pic_click(waqin_daka_img)

    customSleep(2)
}

//区域找图点击
function find_pic_click(p){
    temp1 = images.read(p)
    img1 = captureScreen()
    p1 = findImage(img1, temp1,
        {
            //region: [60, 200, device.width-60, 1423-200],
            threshold:0.5
        }
    )
    if(p1){
        log("找到了"+p+"："+p1.x+":"+p1.y)
        click(p1.x+temp1.getWidth()/2,p1.y+ temp1.getHeight()/2)
        sleep(100)
        return true;
    }else{
        log("没找到："+p);
        return false;
    }
}

function thread_demo(){
    var thread = threads.start(function(){
        //在子线程执行的定时器
        setInterval(function(){
            log("子线程:" + threads.currentThread());
        }, 1000);
    });
    
    log("当前线程为主线程:" + threads.currentThread());
    
    //等待子线程启动
    thread.waitFor();
    //在子线程执行的定时器 一次性的
    thread.setTimeout(function(){
        //这段代码会在子线程执行
        log("当前线程为子线程:" + threads.currentThread());
    }, 2000);
    
    sleep(30 * 1000);
    thread.interrupt();
}

//控件的click()无法点击, 点击控件的中心
function click_by_bounds(){
    //获取这个控件
    var widget = id("xxx").findOne();
    //获取其中心位置并点击
    click(widget.bounds().centerX(), widget.bounds().centerY());
    //如果用root权限则用Tap
}

function contains(){
    //descContains即desc包含部分信息即可匹配
    if(descContains("选项").exists())
    {
        //需要执行的操作
    }
    
    //descStartsWith即desc以此信息开头即可匹配
    if(descStartsWith("更多").exists())
    {
        //需要执行的操作
    }

    //textContains即text包含部分信息即可匹配
    if(textContains("学习积分").exists())
    {
        //需要执行的操作
    }
    
    //textStartsWith即text以此信息开头即可匹配
    if(textStartsWith("我的").exists())
    {
        //需要执行的操作
    }
}

//获取autojs版本信息
function get_autojs_info(){
    var vername = app.autojs.versionName;
    var varcode = app.autojs.versionCode;
    var aupkname = getPackageName("Auto.js");

    log("autjs版本："+vername);
    log("autjs版本号："+varcode);
    log("autjs pkname："+aupkname); //org.autojs.autojs
    var inlog = shell("pm path "+aupkname);
    log("autojs路径："+ inlog.result)
}

//关闭应用程序
function closeCurrentPackage() {
    // 可以稍加修改，关闭指定app
    let packageName = currentPackage();//com.quakr.browser
    //log(packageName)

    app.openAppSetting(packageName);
    text(app.getAppName(packageName)).waitFor();

    var cflag = className("android.widget.TextView").text("结束运行").findOne().parent().click()
    log("结束运行?:"+cflag)

    customSleep(2)

    var surefalg = className("android.widget.Button").text("确定").findOne().click()
    log("确认关闭:"+surefalg)

    if(surefalg){
        log(app.getAppName(packageName) + "应用已被关闭");
    }else{
        log(app.getAppName(packageName) + "应用不能被正常关闭或不在后台运行");
    }

    customSleep(1)
    back()
    home()
}

function customSleep(time){
    sleep(time*1000);
}